home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / etc / firehol / examples / home-adsl.conf < prev    next >
Text File  |  2005-10-18  |  3KB  |  127 lines

  1. #
  2. # $Id: home-adsl.conf,v 1.6 2003/10/12 13:43:42 ktsaou Exp $
  3. #
  4. # THIS IS AN OLD EXAMPLE SCRIPT, LEFT HERE FOR HISTORICAL REASONS 
  5. # PLEASE USE THE lan-gateway.conf EXAMPLE.
  6. #
  7. # CASE:
  8. # Configuration file for a home router with two Ethernet interfaces:
  9. #     one connected to an ADSL modem (loop)
  10. #     another for the local LAN (hub / switch)
  11. #
  12. # Traffic is routed through a PPP interface
  13. #
  14. # The PPP interface gets a dynamic (random) IP address and the LAN works
  15. # with private IP addresses.
  16. #
  17. # The PCs on the local LAN are trusted. They can access all the services
  18. # this Linux box is running.
  19. #
  20. # This script can also setup a transparent cache for all the PCs on the
  21. # local LAN.
  22.  
  23. version 5
  24.  
  25.  
  26. # ----------------------------------------------------------------------
  27.  
  28. # The Ethernet interface your Linux is connected to the ADSL device.
  29. adsl_interface="eth0"
  30.  
  31. # The IP address of the above interface.
  32. # If empty, this script will try to find it by itself.
  33. adsl_interface_ip=""
  34.  
  35. # The IP address of your ADSL device.
  36. # If empty, the generated iptables rules will match any source IP
  37. # which is highly discouraged.
  38. adsl_modem_ip=""
  39.  
  40. # The Ethernet interface your Linux talks with other PCs in your LAN.
  41. home_interface="eth1"
  42.  
  43. # Public services for the Internet your linux box should allow.
  44. internet_services="smtp http"
  45.  
  46. # At what frequency to accept requests from the internet?
  47. internet_requests="10/sec"
  48.  
  49. # The port of a squid proxy server on this Linux box. If you set this
  50. # you will get a transparent web cache.
  51. # If you don't have this, empty this field.
  52. proxy_port="3128"
  53.  
  54.  
  55. # ----------------------------------------------------------------------
  56. # Normally, you don't have to edit anything bellow.
  57. # ----------------------------------------------------------------------
  58.  
  59. # Code to do add some optional arguments to the ADSL interface.
  60.  
  61. adsl_params=
  62.  
  63. # Find the IP address of the ADSL interface in case
  64. # the user did not gave it to us.
  65. if [ -z "${adsl_interface_ip}" ]
  66. then
  67.     adsl_interface_ip=`ifconfig | grep -A 1 ${adsl_interface} | grep "inet addr:" | cut -d ':' -f 2 | cut -d ' ' -f 1`
  68. fi
  69.  
  70. # Build the optional rule parameters, if we have the adsl_interface_ip
  71. if [ -z "${adsl_interface_ip}" ]
  72. then
  73.     error "Please set 'adsl_interface_ip' in the configuration file."
  74. else
  75.     adsl_params="${adsl_params} dst ${adsl_interface_ip}"
  76. fi
  77.  
  78. # Build the optional rule parameters, if we have the adsl_modem_ip
  79. if [ ! -z "${adsl_modem_ip}" ]
  80. then
  81.     adsl_params="${adsl_params} src ${adsl_modem_ip}"
  82. fi
  83.  
  84.  
  85. # ----------------------------------------------------------------------
  86.  
  87. # Setup a transparent proxy on this host.
  88. if [ ! -z "${proxy_port}" ]
  89. then
  90.     iptables -t nat -A PREROUTING -i ${home_interface} -p tcp --dport 80 -j REDIRECT --to-port ${proxy_port}
  91. fi
  92.  
  93.  
  94. # ADSL loop for connecting to the ADSL device
  95. interface "${adsl_interface}" loop ${adsl_params}
  96.     # accept everything on the ADSL loop
  97.     policy accept
  98.  
  99.  
  100. # Trusted LAN for local PCs
  101. interface "${home_interface}" home
  102.     policy accept
  103.  
  104.  
  105. # ADSL ppp for internet traffic
  106. interface ppp+ internet src not "${UNROUTABLE_IPS}"
  107.     protection strong ${internet_requests}
  108.     
  109.     # Public Services
  110.     server "${internet_services}" accept
  111.     
  112.     # Speed up idents
  113.     server ident reject with tcp-reset
  114.     
  115.     # This is a workstation
  116.     client all accept
  117.  
  118.  
  119. # Route traffic for the clients on the LAN
  120. router myrouter inface ppp+ outface "${home_interface}"
  121.     
  122.     # masquerade on ppp+
  123.     masquerade reverse
  124.     
  125.     # route all client traffic
  126.     client all accept
  127.